package com.cntcdt.api.db.model.base;

import java.io.Serializable;
import java.sql.ResultSet;
import java.util.Date;

/**
 * 这是cdt_user_money_history的数据传输对象基类,直接与表对应<br>
 */
public abstract class UserMoneyHistoryModelBase  implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 属性:id<br>
     */
    private Integer id = 0;
    /**
     * 属性:1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额<br>
     * 含义:1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额<br>
     */
    private Integer type = 0;
    /**
     * 属性:3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败<br>
     * 含义:3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败<br>
     */
    private Integer status = 0;
    /**
     * 属性:addTime<br>
     */
    private Date addTime = new Date();
    /**
     * 属性:updateTime<br>
     */
    private Date updateTime = new Date();
    /**
     * 属性:金额<br>
     * 含义:金额<br>
     */
    private Double money = 0.0;
    /**
     * 属性:sortTime<br>
     */
    private Long sortTime = null;
    /**
     * 属性:用户Id<br>
     * 含义:用户Id<br>
     */
    private Integer userId = 0;
    /**
     * 属性:提现余额Id<br>
     * 含义:提现余额Id<br>
     */
    private Integer cashPickupId = 0;
    /**
     * 属性:旧用户id<br>
     * 含义:旧用户id<br>
     */
    private Integer userIdOld = 0;

    /**
     *  默认构造方法,构造一个默认的UserMoneyHistoryModelBase对象
     */
    public UserMoneyHistoryModelBase(){
    }

    /**
     *  构造函数
     *  @param rs 数据库查询结果集
     */
    public UserMoneyHistoryModelBase(ResultSet rs){
           try{
               this.id = rs.getInt("id");
               this.type = rs.getInt("type");
               this.status = rs.getInt("status");
               this.addTime = rs.getDate("addTime");
               this.updateTime = rs.getDate("updateTime");
               this.money = rs.getDouble("money");
               this.sortTime = rs.getLong("sortTime");
               this.userId = rs.getInt("userId");
               this.cashPickupId = rs.getInt("cashPickupId");
               this.userIdOld = rs.getInt("userIdOld");
           }catch(Exception e) {
              e.printStackTrace(); 
           }
    }


    /**
     * 设置属性id<br>
     * @param id 待设置的属性id的值
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取属性id<br>
     * @return 属性id的值
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置属性1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额<br>
     * 含义:1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额<br>
     * @param type 待设置的属性1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额的值
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 获取属性1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额<br>
     * 含义:1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额<br>
     * @return 属性1表示充值 2表示购买线 3购买充电宝 4充电宝超时扣款 5表示申请退款 6表示充值会员 7归还已购买的充电宝 8.关注公众号获取赠送金额的值
     */
    public Integer getType() {
        return type;
    }

    /**
     * 设置属性3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败<br>
     * 含义:3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败<br>
     * @param status 待设置的属性3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败的值
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取属性3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败<br>
     * 含义:3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败<br>
     * @return 属性3表示钱已经到账 1表示进行中 2表示退款已经处理 -1表示失败的值
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置属性addTime<br>
     * @param addTime 待设置的属性addTime的值
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取属性addTime<br>
     * @return 属性addTime的值
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置属性updateTime<br>
     * @param updateTime 待设置的属性updateTime的值
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取属性updateTime<br>
     * @return 属性updateTime的值
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置属性金额<br>
     * 含义:金额<br>
     * @param money 待设置的属性金额的值
     */
    public void setMoney(Double money) {
        this.money = money;
    }

    /**
     * 获取属性金额<br>
     * 含义:金额<br>
     * @return 属性金额的值
     */
    public Double getMoney() {
        return money;
    }

    /**
     * 设置属性sortTime<br>
     * @param sortTime 待设置的属性sortTime的值
     */
    public void setSortTime(Long sortTime) {
        this.sortTime = sortTime;
    }

    /**
     * 获取属性sortTime<br>
     * @return 属性sortTime的值
     */
    public Long getSortTime() {
        return sortTime;
    }

    /**
     * 设置属性用户Id<br>
     * 含义:用户Id<br>
     * @param userId 待设置的属性用户Id的值
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取属性用户Id<br>
     * 含义:用户Id<br>
     * @return 属性用户Id的值
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置属性提现余额Id<br>
     * 含义:提现余额Id<br>
     * @param cashPickupId 待设置的属性提现余额Id的值
     */
    public void setCashPickupId(Integer cashPickupId) {
        this.cashPickupId = cashPickupId;
    }

    /**
     * 获取属性提现余额Id<br>
     * 含义:提现余额Id<br>
     * @return 属性提现余额Id的值
     */
    public Integer getCashPickupId() {
        return cashPickupId;
    }

    /**
     * 设置属性旧用户id<br>
     * 含义:旧用户id<br>
     * @param userIdOld 待设置的属性旧用户id的值
     */
    public void setUserIdOld(Integer userIdOld) {
        this.userIdOld = userIdOld;
    }

    /**
     * 获取属性旧用户id<br>
     * 含义:旧用户id<br>
     * @return 属性旧用户id的值
     */
    public Integer getUserIdOld() {
        return userIdOld;
    }


    /**
     * 比较两个对象在逻辑上是否相等
     * @see java.lang.Object#equals(java.lang.Object)
     */
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof UserMoneyHistoryModelBase)) {
            return false;
        }

        final UserMoneyHistoryModelBase otherModel = (UserMoneyHistoryModelBase) other;
        if (getId()!=null && !getId().equals(otherModel.getId())) {
            return false;
        }
        return true;
    }

    /**
     * 根据主键生成HashCode
     * @see java.lang.Object#hashCode()
     */
    public int hashCode() {
        StringBuffer buffer = new StringBuffer();
        buffer.append('|').append(id);
        return buffer.toString().hashCode();
    }
}
